Everything about Out Of Memory totally explained
Out of memory (OOM) is an undesired state of computer operation where no additional memory can be allocated for use by programs or the operating system. Such a system will be unable to load any additional programs and since many programs may load additional data into memory during execution, these will cease to function correctly. This occurs because all available memory, including disk
swap space, has been allocated.
Historically, the out of memory condition was more common than it's now - early computers (including
personal computers) and
operating systems were limited to small amounts of physical
Random Access Memory due to the inability of early processors to address large amounts of memory, as well as cost considerations. Since the advent of
virtual memory opened the door for the usage of
swap space, the condition is much more rare.
Early operating systems lacked support for
multitasking, such as
Microsoft DOS. Programs were allocated physical memory that they could use as they needed. Physical memory is often a scarce resource, and when it was used up by applications such as applications with
terminate stay resident functionality no further applications could be started until running applications were closed.
Modern operating systems provide virtual memory, in which processes are given a range of memory, but there's no guarantee that the memory corresponds to physical RAM. Virtual memory can be backed by physical RAM, a file via
mmap, or swap space, and the operating system can move virtual memory pages around as it needs. Because virtual memory doesn't need to be backed by physical memory, exhaustion of it's rare, and usually there are other limits imposed by the operating system on resource consumption.
Due to
Moore's law, the amount of physical memory in all computers has grown almost exponentially, although this is offset to some degree by programs and files themselves becoming larger. It should be noted that, in most cases, a computer with virtual memory support where the majority of the loaded data resides on the hard disk would probably run so slowly due to excessive
paging that it would be considered to have failed, prompting the user to close some programs or reboot. As such, an out of memory message is rarely encountered by applications with modern computers.
The typical OOM case in modern computers is when the operating system is unable to create any more virtual memory, because all of its potential backing devices have been filled.
Operating systems such as
Linux will attempt to recover from this type of OOM condition by terminating a low-priority process, a mechanism known as the
OOM Killer.
Per-process memory limits
A system may limit the amount of memory each process may use. This is usually a matter of policy but it can also happen when the OS has a larger address space than is available at the process level. It isn't uncommon for high-end 32-bit systems to come with 8GB or more of system memory, even though any single process can only access 4GB of it in a 32-bit
flat memory model.
A process that exceeds its per-process limit will have attempts to allocate further
memory, for example with
malloc, return failure. A well-behaved application should handle this situation gracefully; however, many do not. An attempt to allocate memory without checking the result is known as an "unchecked malloc".
Further Information
Get more info on 'Out Of Memory'.
|
External Link Exchanges
Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:
<a href="http://out_of_memory.totallyexplained.com">Out of memory Totally Explained</a>
Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned. |